{
 "cells": [
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-17T16:07:13.595133Z",
     "start_time": "2025-01-17T16:07:10.543186Z"
    }
   },
   "source": [
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import sklearn\n",
    "import pandas as pd\n",
    "import os\n",
    "import sys\n",
    "import time\n",
    "from tqdm.auto import tqdm\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "\n",
    "print(sys.version_info)\n",
    "for module in mpl, np, pd, sklearn, torch:\n",
    "    print(module.__name__, module.__version__)\n",
    "    \n",
    "device = torch.device(\"cuda:0\") if torch.cuda.is_available() else torch.device(\"cpu\")\n",
    "print(device)\n"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "sys.version_info(major=3, minor=12, micro=3, releaselevel='final', serial=0)\n",
      "matplotlib 3.10.0\n",
      "numpy 1.26.4\n",
      "pandas 2.2.3\n",
      "sklearn 1.6.0\n",
      "torch 2.5.1+cpu\n",
      "cpu\n"
     ]
    }
   ],
   "execution_count": 1
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": [
    "## Dataset\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-17T16:07:13.602732Z",
     "start_time": "2025-01-17T16:07:13.596157Z"
    }
   },
   "source": [
    "from torch.utils.data import Dataset\n",
    "\n",
    "class RandomDataset(Dataset):\n",
    "    def __init__(self, labels):\n",
    "        self.labels = labels\n",
    "        \n",
    "    def __getitem__(self, index):\n",
    "        data = torch.mul(torch.randn(2), 0.1) + self.labels[index] # 生成两个服从标准正态分布的随机数（两个维度），然后乘以0.1，再加上label\n",
    "        label = self.labels[index]\n",
    "        return data, label # 返回的是一个元组,这里返回的数据格式决定我们遍历这个数据集时，每次迭代返回的数据格式\n",
    "    \n",
    "    def __len__(self):\n",
    "        return len(self.labels)\n",
    "    \n",
    "#np.random.randint(2, size=1000)生成了一个长度为1000的随机标签数组，每个元素都是0或1\n",
    "rd = RandomDataset(np.random.randint(2, size=1000))\n",
    "print(\"数据集的长度：\", len(rd))\n",
    "\n",
    "for x,y in rd:\n",
    "    print(x,y)\n",
    "    break"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据集的长度： 1000\n",
      "tensor([0.9319, 1.0187]) 1\n"
     ]
    }
   ],
   "execution_count": 2
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-17T16:07:13.848288Z",
     "start_time": "2025-01-17T16:07:13.602732Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 可视化随机数据集\n",
    "x1 = []\n",
    "x2 = []\n",
    "labels = [] #标签\n",
    "\n",
    "for (a,b), label in rd:\n",
    "    x1.append(a)\n",
    "    x2.append(b)\n",
    "    labels.append(label)\n",
    "\n",
    "    \n",
    "plt.scatter(x1, x2, s=10, c=labels) # s是点的大小，c是颜色\n",
    "plt.colorbar()\n",
    "plt.show()"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ],
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 3
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-07-19T08:11:18.763467Z",
     "start_time": "2024-07-19T08:11:18.753493Z"
    }
   },
   "source": [
    "## DataLoader"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-17T16:07:13.855667Z",
     "start_time": "2025-01-17T16:07:13.849287Z"
    }
   },
   "source": [
    "from torch.utils.data import DataLoader\n",
    "\n",
    "ld = DataLoader(rd, batch_size=8, shuffle=True) # batch_size是每次迭代返回的数据个数，shuffle是是否打乱数据集\n",
    "\n",
    "for data, label in ld:\n",
    "    print(data)\n",
    "    print(label)\n",
    "    break"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([[ 0.9428,  0.8828],\n",
      "        [-0.1133, -0.0718],\n",
      "        [ 1.0510,  0.9723],\n",
      "        [ 1.1714,  0.8773],\n",
      "        [ 0.0431, -0.0581],\n",
      "        [ 0.9954,  0.9939],\n",
      "        [ 0.0630,  0.0959],\n",
      "        [ 0.0488,  0.0231]])\n",
      "tensor([1, 0, 1, 1, 0, 1, 0, 0], dtype=torch.int32)\n"
     ]
    }
   ],
   "execution_count": 4
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
